package in.model;
import java.io.Serializable;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import net.callumtaylor.asynchttp.obj.entity.JsonEntity;
import android.util.Log;
import com.google.gson.JsonObject;
@ToString public class CrashReport implements Serializable
{
@Getter @Setter private String userId = "unknown";
// App information
@Getter @Setter private String version = "unknown";
@Getter @Setter private String packageName = "unknown";
@Getter @Setter private String versionCode = "0";
// User information
@Getter @Setter private String deviceId = "";
@Getter @Setter private String pushId = "";
// Device information
@Getter @Setter private String model = "unknown";
@Getter @Setter private String manufacturer = "unknown";
@Getter @Setter private String osVersion = "unknown";
@Getter @Setter private String screenSize = "0x0";
@Getter @Setter private String screenDensity = "0x0";
@Getter @Setter private Throwable exception = new Throwable();
@Getter @Setter private String additionalMessage = "";
@Getter @Setter private long timestamp = 0L;
public JsonEntity toEntity()
{
try
{
JsonObject postData = new JsonObject();
postData.addProperty("user_id", userId);
postData.addProperty("app_version", version);
postData.addProperty("app_build", versionCode);
postData.addProperty("device_id", deviceId);
postData.addProperty("device_make", manufacturer + " " + model);
postData.addProperty("device_version", osVersion);
postData.addProperty("report", Log.getStackTraceString(exception) + "\r\n" + additionalMessage);
postData.addProperty("date", timestamp / 1000);
JsonEntity entity = new JsonEntity(postData);
return entity;
}
catch (Exception e)
{
return null;
}
}
}